// 新增页面初始化逻辑

import renderPhoto from './renderPhotoItem';
import getSubTableData from "./getSubTableData";

const formLists = ['bd_psndoc', 'hi_psnjob_h', 'hi_psnorg_h'];

export default function (show) {
    const {
        form, cardTable, meta: {
            getMeta
        }
    } = this.props
    const {
        addPageTemplate,
        isShowCardPag,

    } = 'addPageTemplate' in this.props ? this.props : this.state;
    // 设置三个表单的编辑态
    if (!isShowCardPag) {
        formLists.map((item) => {
            form.setFormStatus(item, 'edit');
        });
    }


    // 设置表格数据
    addPageTemplate.areaCodeList.map((item) => {
        if (addPageTemplate.certGrid && addPageTemplate.certGrid[item]) {
            cardTable.setTableData(item, addPageTemplate.certGrid[item]);
        } else if (addPageTemplate.trainGrid && addPageTemplate.trainGrid[item]) {
            cardTable.setTableData(item, addPageTemplate.trainGrid[item]);
        } else {
            //需要清空表格数据，否则连续点修改保存这里的数据会重复保存
            cardTable.setTableData(item, {rows: []}, null, false);
        }
    });

    // 出现了一个很奇怪的bug，只有新增数据的时候，表格的必填列上才会出现红色的星号
    // 所以这里做了个极端的事情就是，先新增一行在删除一行
    addPageTemplate.areaCodeList.map((item) => {
        if (!formLists.includes(item)) {
            cardTable.addRow(item, 0, {}, false);
            cardTable.delRowsByIndex(item, 0);
        }
    });

    // 设置三个form表单数据
    form.setAllFormValue({
        'bd_psndoc': addPageTemplate['psndocForm']['bd_psndoc'],
        'hi_psnjob_h': addPageTemplate['psnjobForm']['hi_psnjob_h'],
        'hi_psnorg_h': addPageTemplate['psnorgForm']['hi_psnorg_h']
    });

    // 业务子集的状态
    addPageTemplate.busiSet.map((item) => {
        cardTable.setStatus(item, 'browse');
    });

    //cardTable.toggleCardTable(addPageTemplate.areaCodeList, false);

    /**
     * 根据模板上的配置展开子集
     */
    addPageTemplate.areaCodeList.forEach(tableId => {
        if (addPageTemplate.allArea[tableId].moduletype === 'table') {
            cardTable.toggleCardTable(tableId, addPageTemplate.allArea[tableId].isunfold);
            if (addPageTemplate.allArea[tableId].isunfold) {
                getSubTableData.call(this, tableId, 2);
            }
        }
    })
    renderPhoto.call(this);
}
